package org.digitalsoul.switchplugin.model;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;

public interface ISwitchFile {

    /**
     * @return the full name of a file e.g <tt>MyFile.xml</tt>
     */
    public String getName();

    public String getBaseName();

    public String getFileExtension();

    public boolean equals(Object obj);

    /**
     * Returns the project relative location of the file in the project tree excluding the file itself e.g
     * <tt>src/main/java/org/foo</tt>
     * 
     * @return the project relative location of the file
     */
    public String getLocation();

    /**
     * Returns the project relative path of the file in the project tree e.g src/main/java/org/foo/Test.java
     * 
     * @return the project relative location of the file
     */
    public String getPath();

    public boolean exists();

    public IProject getProject();

    public IFile getIFile();
}
